良心推荐:机器学习入门资料汇总及学习建议(2018版)
机器学习初学者公众号自从2018年10月开设以来,发表了不少机器学习入门的宝贵资料,受到广大机器学习爱好者的好评,本文对2018年本站发过的文章进行分类和汇总,以便初学者更好地学习。(作者:黄海广)
机器学习入门,初学者遇到的问题非常多,但最大的问题就是:
资料太多!!!看不完!!!不知道如何取舍!!!
我曾经写了一篇初学者入门的文章:《机器学习简易入门-附推荐学习资料》,这篇文章给初学者指明了学习的方向,受到广大初学者好评。
在此基础上,结合本站已经发过的文章,整理出一个机器学习的入门路线,本路线适合本科、硕士以及刚接触机器学习的博士。
入门以后,遇到问题能上网搜索解决了,也知道接下来应该学什么。
一、机器学习的数学基础
正规的机器学习数学基础主要有:
数学分析(微积分),线性代数,概率论,统计,应用统计,数值分析,常微分方程,偏微分方程,数值偏微分方程,运筹学,离散数学,随机过程,随机偏微分方程,抽象代数,实变函数,泛函分析,复变函数,数学建模,拓扑,微分几何,渐近分析......
以上内容可能引起初学者不适。
其实大部分人学习机器学习的目的,只要会用机器学习算法及工具,解决一些问题,了解算法的基本原理即可,并不需要学得那么深入。没有几个人能像博士一样扎实地学好数学基础,只是希望快速入门机器学习,那么只需要掌握必要的几个基础点就好了。机器学习的数学最主要是高等数学、线性代数、概率论与数理统计三门课程,这三门课程应该是本科必修的。本站整理了一个简易的数学入门文章。
本站推荐文章:
如果真的忘了基础公式,那就看下上面这篇文章:,可以把这篇文章提供下载数学资料看一遍,不需要全看懂,但是基础的公式要大致明白,能从资料中查找公式,里面有两个公式总结材料:a.机器学习的数学基础.docx(中文版,对高等数学、线性代数、概率论与数理统计三门课的公式做了总结) ,b.斯坦福大学机器学习的数学基础.pdf(原版英文材料,非常全面,建议英语好的同学直接学习这个材料)。
二、经典的机器学习资料和教程
1)吴恩达《机器学习》公开课
原课程地址:coursera.org/course/ml
机器学习入门的最佳教程应该是吴恩达老师的《机器学习》公开课,这门课面向初学者,注重实际应用,并不侧重数学推导。这门课开课较早,但到现在仍然是最火的机器学习公开课,评分非常高,课程配套作业(octave版本)。
学习这个课程注意事项:
第五章Octave教程、第十八章应用实例,这两章可以不用学,有点过时了。
原版的octave作业可以不用做,可以做修改过的python版本作业。
如果和吴恩达老师的《深度学习》公开课一起看,第四、五、六周的内容可以直接学习《深度学习》的相关内容。
这个教程建议在三个月内看完,如果有些地方看不懂,没关系,以后用到的时候再回头看看。
这个课程建议配合课程笔记一起看。本站已经提供了笔记下载
把机器学习的概念做成背托福单词的随身小抄一样方便!分分钟搞定机器学习各种记不住的概念!这篇建议用一周时间看完,注意是略读,有些地方不懂没关系,做下记录,以后用到的时候再查。
3) 李航《统计学习方法》
《统计学习方法》详细介绍支持向量机、Boosting、最大熵、条件随机场等十个统计学习方法。对数学基础有一定要求,这是经典中的经典,很多国内的网课,互联网企业的面试、笔试题目,或多或少,参考了这本书的内容,对初学者来说,有点难度,但是,如果想通过面试笔试,这本书应该要看懂,试着推导下算法。
本站用python实现了大部分算法,建议试着运行下。
4) 台湾大学林轩田老师的《机器学习基石》、《机器学习技法》课程
台湾大学林轩田老师的《机器学习基石》《机器学习技法》课程由浅入深、内容全面,基本涵盖了机器学习领域的很多方面。其作为机器学习的入门和进阶资料非常适合。
这门课有一个配套教材:《Learning From Data》(LFD),林轩田也是编者之一。这本书的主页为:http://amlbook.com/。豆瓣上关于这本书的评分高达9.4,还是很不错的,值得推荐!可以配套视频一起学习。这本书内容通俗易懂,非常精彩,不是单纯罗列公式,是一本非常适合入门的机器学习书籍。
5) 吴恩达《深度学习》公开课
原课程地址:www.deeplearning.ai
这个视频教程用最简单的方式,把深度学习的主要算法和框架讲得非常清楚,课程附带代码作业和测试题作业,学完以后,深度学习就算入门了。每章的学习建议:
第一章:神经网络与深度学习
部分内容是《机器学习》公开课的第四、第五周的升级版
第二章:改善深层神经网络
这部分内容基本没有和《机器学习》公开课有重合部分。
第三章:结构化机器学习项目
部分内容是机器学习的第六周的升级版。
第四章:卷积神经网络
这部分主要用于图像、目标检测方面的,相当于斯坦福CS231n深度学习与计算机视觉-李飞飞主讲的课程的简化。
第五章:序列模型
这部分主要用于自然语言处理,注意一点:RNN/LSTM结构里的符号,和原始论文有点不一样,我们平时的博客、论文的符号,跟吴恩达老师的课程的符号略有区别。
6) 李宏毅《一天读懂深度学习》讲义
台大李宏毅教授的深度学习讲义,这是我见过最容易懂的深度学习入门资料,300多页的讲义能系统、通俗易懂地讲清楚深度学习的基本原理,如同机器学习小抄一样生动形象。
建议用几天时间把这个讲义浏览一次,可以基本了解什么是深度学习,深度学习有什么用。
本站整理的推荐文章:
吴恩达老师《机器学习》和《深度学习》课程的视频、笔记、python代码作业的下载。 github地址:https://github.com/fengdu78 机器学习小抄下载。 机器学习必备宝典-《统计学习方法》的python代码实现、电子书及课件 统计学习方法的python代码实现,本文被机器之心公众号转载过。 github地址:https://github.com/fengdu78/lihang-code 首发:台大林轩田《机器学习基石》系列课程教材的习题解答和实现 台湾大学林轩田老师的《机器学习基石》、《机器学习技法》课程习题解答。本站实现了课程教材的绝大部分习题,并作了详细的笔记,在github予以分享。 github地址:https://github.com/Doraemonzzz/Learning-from-data 深度学习初学者的另一份小抄-《一天学懂深度学习(李宏毅)》(中文标注) 台大李宏毅教授的深度学习讲义。 吴恩达机器学习的作业python实现。
吴恩达《深度学习》测试题翻译和解答,面试笔试必备。
三、学好编程语言
机器学习理论上需要精通Python、Java、R、MATLAB、C++等编程语言。
如果只是入门,仅推荐Python这门编程语言。
机器学习主要的代码工具为Python,Python学习到底要学到什么程度?个人感觉:入门最重要,至少要学到碰到问题能查百度的程度。
1) Python安装:
关于python安装包,我推荐下载Anaconda,Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本Python并存、切换以及各种第三方包安装问题。下载地址:https://www.anaconda.com/download/ 推荐选Anaconda (python 3.7版本)
IDE:推荐使用pycharm,社区版免费,下载地址:https://www.jetbrains.com/
2) python入门的资料推荐
a.《利用python进行数据分析》
这本书含有大量的实践案例,你将学会如何利用各种Python库(包括NumPy、pandas、matplotlib以及IPython等)高效地解决各式各样的数据分析问题。这个是我看的第一本python入门资料,如果把代码都运行一次,基本上就能解决数据分析的大部分问题了。
下载地址:建议购买书,源代码可以上百度搜索。
注意:第二版中文翻译已经有人写了,建议搜索下载。
b.python入门笔记
作者李金,这个是jupyter notebook文件,把python的主要语法演示了一次,值得推荐。
下载地址:https://pan.baidu.com/s/1snmeqlR 密码:hkv8
c.南京大学python视频教程
这个教程非常值得推荐,python主要语法和常用的库基本涵盖了。
视频下载地址:https://yun.baidu.com/s/1cCbERs 密码:7thx
看完这三个资料,python基本入门了,同时可以使用scikit-learn等机器学习库来解决机器学习的问题了。
3) 深度学习主要框架的学习
深度学习的主要框架,最基础的,应该是Tensorflow和Keras。教程很多,可以选择性地学一下,本站推荐简便的入门方法:
a.Tensorflow入门
吴恩达《深度学习》公开课第二门课3.11介绍了Tensorflow的基本用法(对应笔记p251),这些用法会了以后,基本上能看懂大部分代码了,结合该课程的代码作业,不懂的地方搜百度都能搜到了。
此外有个资源要推荐下:
资源地址:
https://github.com/aymericdamien/TensorFlow-Examples
本资源旨在通过示例轻松深入了解TensorFlow。 为了便于阅读,它包括notebook和带注释的源代码。
它适合想要找到关于TensorFlow的清晰简洁示例的初学者。 除了传统的“原始”TensorFlow实现,您还可以找到最新的TensorFlow API实践(例如layers,estimator,dataset, ......)。
b.Keras入门
《python深度学习》书和配套代码,《python深度学习》由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和Keras进行深度学习的探索实践,包括计算机视觉、自然语言处理、产生式模型等应用。书中包含30多个代码示例,步骤讲解详细透彻。
作者在github公布了代码,代码几乎囊括了本书所有知识点。在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力。但是有一个小小的遗憾:代码的解释和注释是全英文的,即使英文水平较好的朋友看起来也很吃力。
本站对全部代码做了中文解释和注释,并下载了代码所需要的一些数据集(尤其是“猫狗大战”数据集),并对其中一些图像进行了本地化,代码全部测试通过。(请按照文件顺序运行,代码前后有部分关联)。
本站认为,这本书和代码是初学者入门深度学习及Keras最好的工具。
c.Pytorch入门
资源地址:
https://github.com/yunjey/pytorch-tutorial
这个资源为深度学习研究人员提供了学习PyTorch的教程代码大多数模型都使用少于30行代码实现。 在开始本教程之前,建议先看完Pytorch官方教程。
本站推荐文章:
首发:深度学习入门宝典-《python深度学习》原文代码中文注释版及电子书
《python深度学习》电子书及中文注释代码下载。
强烈推荐的TensorFlow、Pytorch和Keras的样例资源(深度学习初学者必须收藏)TensorFlow、Keras和Pytorch是目前深度学习的主要框架,也是入门深度学习必须掌握的三大框架,但是官方文档相对内容较多,初学者往往无从下手。本人从github里搜到三个非常不错的学习资源,并对资源目录进行翻译,强烈建议初学者下载学习,这些资源包含了大量的代码示例(含数据集),个人认为,只要把以上资源运行一次,不懂的地方查官方文档,很快就能理解和运用这三大框架。
两天入门Python基础(附代码实现)
python基础简易入门
python绘图工具基础-matplotlib学习之基本使用
python绘图基础
在平时工作中,好多程序员都在为变量的命名纠结不已,随便命名怕以后看不懂,想好好命名可是自己的英文水平又不好,在这个命名上可能需要花费大量的时间,会耽误到开发的效率,这个神器可以摆脱变量命名纠结!
SQL语法如何入门?(附资料下载)
SQL语法简易入门资料。
Ubuntu 18.04深度学习环境配置(CUDA9.0+CUDNN7.4+TensorFlow1.8
本文测试成功了Ubuntu18.04环境下配置深度学习环境(GPU:1080ti),包括:CUDA9.0+CUDNN7.4+TensorFlow1.8+Pytorch0.4的安装和测试,并提供相关软件下载。
四、论文相关和大师之作
学好英语,熟读经典论文,并且读最新的机器学习论文,如顶级会议论文等,掌握最新的技术方向,要经常看技术类博客和文章,也要会写论文。
英文不好的话,输入论文名称,通常能查到该论文的中文内容的博客和文章,这样稍微轻松点。
本站推荐文章:
徐亦达教授在github公布了他的历年机器学习相关课件、视频,黄海广博士协助徐亦达老师对课件目录进行翻译和整理,并提供下载。
机器学习的宝典-华校专老师的笔记
这是华校专老师多年以来学习总结的笔记,经整理之后开源于世。内容分为:数学基础、统计学习、深度学习、自然语言处理、计算机视觉、工具这几个方面。
吐血推荐收藏的学位论文排版教程(完整版)
本文将介绍学位论文的页面布局,标题格式,文档生成列表,插入公式,页眉页脚,生成目录、表格和图片的交叉引用、插入参考文献、英语翻译校对等内容和技巧,学习内容偏多,同学们可以先收藏下来,慢慢学习。
Zotero作为一款协助科研工作者收集、管理以及引用研究资源的免费软件,如今已被广泛使用。此篇使用说明主要分享引用研究资源功能,其中研究资源可以包括期刊、书籍等各类文献和网页、图片等。
五、参加实际项目
如果有大厂的实习机会,尽量去,能学到不少东西。没有实习机会,可以尝试参加下kaggle比赛,不一定要取得多少名次,可以搜搜历次比赛,下载数据,下载别人的公开代码,复现下。国内也有类似的比赛,如天池,DF等。
通常,在2-3个比赛能达到top1%的成绩,代码能力基本没有问题了。
但是,不建议在比赛中花太多时间,比赛大部分时间是用于特征工程,在实际工作中并不一定能用上,只要能解决问题就行了,其他时间用于学习吧。
本站推荐文章:
开源-BDCI2018面向电信行业存量用户的智能套餐个性化匹配模型Top1解决方案和代码
公布了:BDCI2018面向电信行业存量用户的智能套餐个性化匹配模型数据竞赛top1解决方案和代码。该方案利用已有的用户属性(如个人基本信息、用户画像信息等)、终端属性(如终端品牌等)、业务属性、消费习惯及偏好匹配用户最合适的套餐,对用户进行推送,完成后续个性化服务。 (最终排名1/2546)
开源-BDCI2018供应链需求预测模型第一名解决方案和代码
公布了:BDCI2018供应链需求预测数据竞赛第一名的解决方案和代码。该方案利用赛题为运用平台积累最近1年多的商品数据预测45天后5周每周(week1~week5)的销量,为供应链提供数据基础,将能够为出海企业建立全球化供应链方案提供关键的技术支持。
一些NLP的入门资料参考
整理了一些NLP的入门资料参考,建议初学者看看。
CTR预估系列:DeepCTR 一个基于深度学习的CTR模型包
在计算广告和推荐系统中,CTR预估一直是一个核心问题。无论在工业界还是学术界都是一个热点研究问题,近年来也有若干相关的算法竞赛。本文介绍一个基于深度学习的CTR模型包DeepCTR,具有简洁易用、模块化和可扩展的优点。(本文作者:沈伟臣)代码主页:https://github.com/shenweichen/DeepCTR
六、多和学习者交流
交流的方式有很多种,如参加学术活动、实验室讨论等,但我认为最有效的交流方式还是加入一些学术讨论组织,如微信群,qq群等。“闻道有先后术业有专攻”,不懂很正常,不懂就要问,“三人行,必有我师。”
本站有6个qq群,1/2/3/4群为2000群,5/6群为3000群。
现在5群还有空缺,群号:774999266,欢迎加入(原先的公众号文章公布的qq群已经满了)。
总结和建议
本文提供的只是初学者的学习路线及资料,入门了以后,你就会知道哪方面的不足,自己也会找资料学习了。
同时建议时间充裕的同学,尽可能打好数学基础,如果基础不扎实,只会用一些工具和框架,相当于某些武术家只会耍套路,外行人觉得很厉害,但实战起来一定是鼻青脸肿。为什么机器学习从业人员学历越高,往往工资越高,通常和掌握的基础知识正相关。
请关注和分享↓↓↓
机器学习初学者
QQ群:774999266